/*
 * SoftwareSAR - 1.0
 */
package br.com.cpqd.ssar.geradormalha;

import br.com.cpqd.ssar.utilitarias.Geometria;
import br.com.cpqd.ssar.utilitarias.Vertice;

/**
 * Interface do Pacote Gerador de Malha
 * @author Rafael Buck
 * @version 1.1
 */
public interface RequisicoesGeradorMalha {

    /**
     * Solicita criação de uma malha tridimensional para o método numérico FDTD dada uma lista 
     * de geometrias
     * @param lista Geometria[]
     * @param max Vertice
     * @param min Vertice
     * @return status da operação
     */
    public boolean gerarMalhaFDTD(Geometria[] lista, Vertice max, Vertice min);

    /**
     * Solicita criação de uma malha tridimensional para o método numérico FDTD dada uma lista 
     * de geometrias
     * @param lista Geometria[]
     * @param max Vertice
     * @param min Vertice
     * @param nxiPML int número de cubos que irão compor a PML do eixo x (inicial)
     * @param nxfPML int número de cubos que irão compor a PML do eixo x (final)
     * @param nyiPML int número de cubos que irão compor a PML do eixo y (inicial)
     * @param nyfPML int número de cubos que irão compor a PML do eixo y (final)
     * @param nziPML int número de cubos que irão compor a PML do eixo z (inicial)
     * @param nzfPML int número de cubos que irão compor a PML do eixo z (final)
     * @return status da operação
     */
    public boolean gerarMalhaFDTDcomPMLs(Geometria[] lista, Vertice max, Vertice min, int nxiPML, int nxfPML, int nyiPML, int nyfPML, int nziPML, int nzfPML);
    
    /**
     * Importa uma Malha
     * @return Geometria representando a malha
     */
    public Geometria importarMalha();
}
